'''
1、打开文件： with open("1.txt","r") as f
            file_data = f.read()
            print(file_data)
2、with 的强大：由上下文管理器做支撑
3、上下文管理器：一个类实现了__enter__()和 __exit__()两个方法，通过该类创建的对象就是上下文管理器

'''
class File(object):
    def __init__(self, file_name, file_model):
        self.file_name = file_name
        self.file_model = file_model

    def __enter__(self):
        print("这是上文")
        self.file = open(self.file_name, self.file_model)
        return self.file
    def __exit__(self, exc_type, exc_val, exc_tb):
        print("这是下文")
        self.file.close()
with File("1.txt","r") as f:
    file_data = f.read()
    print(file_data)